﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Chilis.Proveedores.Web.ServiceProveedores;
using Chilis.Proveedores.Web.Models;

namespace Chilis.Proveedores.Web.Controllers
{
    public class ConvocatoriaController : Controller
    {
        ProveedoresServiceClient cliente = new ProveedoresServiceClient();
        public ActionResult Index()
        {
            return View();
        }

        [HttpGet]
        public ActionResult ConsultarConvocatoria()
        {
            var modelo = new BuscarConvocatoriaModel();
            modelo.Areas = (from c in cliente.GetAreas()
                            select new SelectListItem() { Text = c.NombreArea, Value = c.IdArea.ToString() }).ToList();
            modelo.Estados = (from c in cliente.GetEstadosConvocatoria()
                              select new SelectListItem() { Text = c.NombreEstado, Value = c.Codigo.ToString() }).ToList();
            modelo.Visitas = new List<SelectListItem>();
            modelo.Visitas.Add(new SelectListItem() { Text = "SI", Value = "1" });
            modelo.Visitas.Add(new SelectListItem() { Text = "NO", Value = "0" });
            return View(modelo);
        }

        [HttpPost]
        public JsonResult BuscarConvocatoria(string Codigo,
                                             int Area,
                                             string FechaInicio,
                                             string FechaFin,
                                             string Visita,
                                             string Estado)
        {
                                   
            var resultado = cliente.SearchConvocatoria(new ConvocatoriaDTO() { 
                                        Codigo = Codigo,
                                        IdArea = Area,
                                        FechaCreacion = FechaInicio.Equals("") ? null : (DateTime?)DateTime.Parse(FechaInicio),
                                        FechaFin = FechaFin.Equals("") ? null : (DateTime?)DateTime.Parse(FechaFin),
                                        Visita = Visita.Equals("") ? null : (bool?)Visita.Equals("1"),
                                        Estado = Estado
                                    });
            var retorno = Json(resultado);
            cliente.Close();
            return retorno;
        }

        [HttpPost]
        public JsonResult ConvocatoriaProveedores(int idConvocatoria)
        {
            var resultado = cliente.GetProveedoresPreseleccionados(idConvocatoria);
            var retorno = Json(resultado);
            cliente.Close();
            return retorno;
        }

        [HttpPost]
        public JsonResult ConvocatoriaDatosProveedores(int idConvocatoria, int idProveedor)
        {
            var resultado = cliente.GetProveedor(idProveedor);
            var resultado1 = cliente.GetConvocatoriaProveedor(idConvocatoria, idProveedor);
            var retorno = Json(new { Proveedor = resultado, Convocatoria = resultado1 });
            cliente.Close();
            return retorno;
        }

        [HttpGet]
        public ActionResult ConsultaProcesoConvocatoria()
        {
            return View();
        }
    }
}
